package com.imaker.frame.utils

import android.util.Log
import com.imaker.frame.bean.UserInfo


/**
 * @author guoziheng
 * @description
 * @date 2020/2/12.
 */
class UserInfoManager private constructor() {
    companion object {
        //双重锁校验模式
        val instance: UserInfoManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
            UserInfoManager()
        }
    }

    /**
     * 获取用户信息
     */
    fun getUserInfor(): UserInfo? {
        return KVUtil.getParcelable(Constants.USER_INFO)
    }

    /**
     * 设置用户为会员
     */
    fun setUserVip(isVip: Boolean){
        val userInfor = getUserInfor()
        userInfor?.memberStatus = isVip
        updateUserInfor(userInfor!!)
    }

    /**
     * 更新用户信息
     */
    fun updateUserInfor(userInfo: UserInfo) {
        KVUtil.putParcelable(Constants.USER_INFO, userInfo)
    }

    /**
     * 获取token
     */
    fun getUserToekn(): String? {
        return KVUtil.getString(Constants.USER_TOKEN)
    }

    /**
     * 更新用户token
     */
    fun updateUserToken(token: String) {
        KVUtil.put(Constants.USER_TOKEN, token)
    }

    /**
     * 用户是否登录状态
     */
    fun getUserLoginState(): Boolean{
        if(getUserToekn() == null){
            return false
        }
        return true
    }

    /**
     * 获取用户ID
     */
    fun getUserId(): Int {
        return KVUtil.getInt(Constants.USER_ID)
    }

    /**
     * 设置用户信息
     */
    fun setUserId(userId: Int){
        KVUtil.put(Constants.USER_ID,userId)
    }


    /**
     * 清空登录状态
     */
    fun clearUserInfo(){
        //清空token
        KVUtil.remove(Constants.USER_TOKEN)
        //清空用户信息
        KVUtil.remove(Constants.USER_INFO)
        //设置不轮询登录接口
        KVUtil.put(Constants.USER_OPEN_LOGIN,false)
    }



}